Modern electronic computing systems, such as microprocessor systems, often include a system board and a flash ROM (read-only memory). In many cases, the flash ROM contains the bootstrapping machine instructions. An issue frequently encountered in early system and software development is the need to reprogram a flash ROM if, for example, the ROM has been corrupted, has a code bug blocking execution, or a new device must be flashed. The traditional approach to this issue is to have a stand-alone flash programmer available to initially program the flash ROM.
For example, referring to FIG. 1, system 100 is an exemplary flash ROM programming system in accordance with the Prior Art. A flash programmer 110 couples to a system 120. Flash programmer 110 is a stand-alone system and has a database 112 and an interface 114. Database 112 is a database of various flash packages and ROM code varying systems 120. System 120 has a system power 122, a flash ROM 124, and an interface 126. Where ROM 124 is corrupted or blank, flash programmer 110 copies the flash code from database 112 to ROM 124 through a connection between interface 114 and interface 126. When system 120 powers on, ROM 124 executes the bootstrap code and system 120 operates accordingly.
One skilled in the art will understand that flash programmer 110 is relatively expensive and slow, and must support the various Flash packages used by the various systems 120. As such, Industry developed other flash programming systems to support a scan-based flash methodology, but these other systems also require additional hardware and code to implement, which increases the system cost.